A device often has multiple connectivity options that are associated with varying degrees of network performance. For example, a first connectivity option associated with a first network interface may provide higher throughput, less latency, and/or a more reliable connection (e.g., minimal lost packets, a minimal packet error rate, etc.), and therefore, the first connectivity option typically consumes more power. A second connectivity option associated with a second network interface may provide lower throughput, higher latency, and/or a less reliable connection, and therefore, the second connectivity option typically consumes less power.
To establish and/or maintain a network connection on behalf of an application installed on a device, conventional network protocol stacks typically select and/or utilize, if available, a network interface and/or a type of network connection that can provide higher performance (e.g., higher throughput, less latency, higher reliability, etc.), even if the application does not need high network performance. Stated another way, the device may not need the network interface and/or the type of network connection that can provide the higher performance because usability of the application (e.g., the user experience) will not suffer due to use of an alternative network interface and/or an alternative type of network connection that provides lower performance. That is, the lack of network performance may be insignificant to the user.